"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/5/13 9:29
@Description : 
数据容器集合的使用

1. 如何定义集合
   1.1  set()    不要使用{}直接创建一个空集合   {}表示空字典字
   1.2  {1,2}
2. 集合的特点
   集合（set）是一个无序的不重复元素序列
3. 集合操作
"""
# 创建空集合
st = set()
# st = {}   #dict
print(st, type(st))
st = {0, '1', 2, 'hello', 'python', 'hello', 0}
print(st, type(st))  # set
print('----------------------集合的通用操作---------------------------')
st1 = {'1', '2', '30', '4'}
st2 = {3, 4, 5, 6, 7}

# 获取集合的长度
result = len(st1)
print(result)

#  不支持  +
# result = st1 + st2

#  不支持 重复
# result = st1 * 2


# 判定是否包含元素
result = 7 in st1
print(result)

print('=====================')
# 遍历集合   可迭代
for i in st2:
    print(i)
print('=========索引操作============')
#  不支持   索引操作  无序
# print(st1[0])

print('----------------------集合的操作---------------------------')
# 添加元素
print(st1)
st1.add('-1')
st1.add('-2')
st1.add('hello')
st1.add('python')
print(st1)

# 获取集合的差集    {0, 1, 2, 3, 4, -1}    {3, 4, 5, 6, 7}
result = st2.difference(st1)
print(result)

# 求合集
result = st1.union(st2)
print(result)
# 删除元素
print(st1)
result = st1.pop()
print(st1)
print(result)
# 清空列表
st1.clear()
print(st1)

print('-----------------------st2---------------------')
print(st2)
# 指定删除的元素
st2.discard(7)
print(st2)

# 求交集
st1 = {1, 2, 3, 4, 5, 6, 7}
st2 = {4, 5, 6, 7}

result = st1.intersection(st2)
print(result)

# update  添加元素   add
# st2.add('ab')
st2.update('ab')  # 拆分元素
print(st2)

print(id(st2))
result = st2.copy()
print(id(result))
